<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>let与const</title>
</head>
<body>

</body>
<script>
//es5 用var
 // var num=10
 // var num=20
 // console.log(num);

 // es  6 let 与const
// 一、用let去声明变量
 // 1.let不允许重复声明变量  var可以
 // 2.let不允许声明提升，var可以
 // 3.let声明支持代码块（作用域）var不受限制
 // 4.let 声明的变量不会挂载到顶层对象，var公共位置会挂载到顶层对象

 //let num=10
//let num=20

 // console.log(num);
 // let num=2;
 // if(true){
 //     var num=20;

 // }
 // console.log(window.num);

 // var num=10

 // let num2=20

 // console.log(window.num);
 // console.log(window.num2);

 // 二、const 声明常量
 // const 与 var
 // 1.const不允许重复声明变量  var可以
 // 2.const不允许声明提升，var可以
 // 3.const声明支持代码块（作用域）var不受限制
 // 4.const 声明的变量不会挂载到顶层对象，var会挂载到顶层对象

 // 1.let声明可以不赋值，const声明必须赋值
// 2.let声明变量可以被更改，const声明常量是不能修改的
 // 3.const声明对象不能修改，但是可以修改里面的键值对，属性


 // let num;
// num=20
 // console.log(num);
// const num=30;
 // num=40
 // console.log(num);

 // const obj={
 //     a:1,
 //     b:2
 // }

// obj.a=20;
// console.log(obj);


 </script>
</html>